<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>对象</title>
</head>
<body>

</body>
<script>
/*
* 对象: JavaScript中的一种数据类型
* 可以理解为一种无序的数据集合，注意数组是有序的数据集合
* 可以来描述某个事物或者某个人
*   人有姓名、年龄、性别等信息，还有吃饭睡觉打代码等功能
*   如果用多个变量保存则比较散，用对象比较统一
*
* 对象是什么
*   对象是一种数据类型，无序的数据集合
* 对象有什么特点
*   无序的数据集合，可以详细的描述某个事物
* 对象的使用
*   1.对象的声明语法
*       let 对象名 = {}
*       let 对象名 = new Object()
*   2.对象由属性和方法组成
*       属性: 信息或叫特征(名词)。比如 手机尺寸、颜色、重量等
*       方法: 功能或叫行为(动词)。比如 手机打电话、发短信、玩游戏
*   3.对象本质是无序的数据集合，操作数据无非就是 增 删 改 查 语法
*     (1) 查
*         对象.属性名
*     (2) 改
*         对象.属性名 = 新值
*     (3) 增
*         对象.新属性 = 新值（JS相当灵活）
*     (4) 删
*         delete 对象.属性
*   4.对象内部的方法
*       方法名: function () {}
*
*       let obj = {
*           // 属性
*           uname: '刘德华',
*           // 方法
*           song: function () {
*               console.log('冰雨')
*           },
*           dance: function () {
*               console.log('只因你太美')
*           },
*       }
*   5.遍历对象
*       for-in语法
*       for(let 索引 in 数组/对象)————索引是字符串类型的
*           obj[索引]
*
*   6.内置对象
*       内置对象是JavaScript内部提供的对象，包含各种属性和方法给开发者调用
*       document.write()
*       console.log()
*
*       Math内置对象
*       介绍: Math对象是JS提供的一个"数学"对象
*       作用: 提供了一系列做数学运算的方法
*       Math对象包含的方法:
*           (1) random: 生成0-1之间的随机数(包括0但不包括1)
*           (2) ceil: 向上取整
*           (3) floor: 向下取整
*           (4) max: 找最大数
*           (5) min: 找最小数
*           (6) pow: 幂运算
*           (7) abs: 绝对值
*           (8) round: 四舍五入
*           (9) pow: 幂方法
*           (10) sqrt: 平方根
*
*           (1) Math.PI: 3.1415926......
*
* */
    let obj = {
        name: '小米青春mini版',
        num: '19182624',
        weight: '0.55kg',
        address: '瓦坎达'
    }
    console.log(obj.address)
    obj.address = '中国大陆'
    console.log(obj.address)
    obj.newAss = 'new'
    console.log(obj.newAss)
    delete obj.newAss
    console.log(obj)
    console.log(obj.name)
    // for-in 语法
    let arr = ['pink' , 'black' , 'white']
    // 遍历数组————一般不这么遍历————索引号是字符串
    for (let k in arr) {
        console.log(k) // 数组的下标 索引号 但类型是是字符串类型
    }
    // 遍历对象————for-in语法
    for (let objKey in obj) {
        console.log(objKey) // 对象的属性名 'name' 、 'num' 、 'weight' 、 'address'
        console.log(obj[objKey]) // 固定语法，必须这样用
    }
// Π
console.log(Math.PI)
// 随机数（0-1之间）
console.log(Math.random())
// 向下取整
console.log(Math.floor(1.1))
// 向上取整
console.log(Math.ceil(1.1))
// 四舍五入
console.log(Math.round(2.2))
// 数组取最大
console.log(Math.max(4 , 5 , 8 , 222 , 2223 , 2.22))
// 数组取最小
console.log(Math.min(4 , 5 , 8 , 222 , 2223 , 2.22))
// 求2的4次方
console.log(Math.pow(2 , 4))
// 求16的算术平方根
console.log(Math.sqrt(22))
</script>
</html>